#pragma once 
#include<iostream>
#include<sys/types.h>
#include<sys/socket.h>
#include<unistd.h>
#include<fcntl.h>
#include<string>

using namespace std;
static void SetNonBlock(int sock)
{
  int fl=fcntl(sock,F_GETFL);
  fcntl(sock,F_SETFL,fl|O_NONBLOCK);
}

static int Getline(int sock,string& requestline)
{
  char ch='X';
  while(ch!='\n')
  {
    ssize_t s=recv(sock,&ch,1,0);
    if(s>0)
    {
      if(ch=='\r')
      {
        recv(sock,&ch,1,MSG_PEEK);
        if(ch!='\n')
          ch='\n';
        else
          recv(sock,&ch,1,0);
      }
      requestline.push_back(ch);
    }
    else if(s==0)
    {
      return 0;
    }
    else 
    {
      return -1;
    }
  }
  return requestline.size();
}
